
#ifndef  _DRV_TV_I_H_
#define  _DRV_TV_I_H_
#include <linux/module.h>
#include <asm/uaccess.h>
#include <asm/memory.h>
#include <asm/unistd.h>
#include "asm-generic/int-ll64.h"
#include "linux/kernel.h"
#include "linux/mm.h"
#include "linux/semaphore.h"
#include <linux/vmalloc.h>
#include <linux/fs.h>
#include <linux/dma-mapping.h>
#include <linux/sched.h>   //wake_up_process()
#include <linux/kthread.h> //kthread_create()??kthread_run()
#include <linux/err.h> //IS_ERR()??PTR_ERR()
#include <linux/delay.h>
#include <linux/platform_device.h>
#include <linux/errno.h>
#include <linux/slab.h>
#include <linux/delay.h>
#include <linux/init.h>
#include <linux/dma-mapping.h>
#include <linux/interrupt.h>
#include <linux/clk.h>
#include <linux/cdev.h>
#include <linux/types.h>
#include <linux/module.h>
#include <mach/sys_config.h>
//#include <linux/switch.h>

#include <video/sunxi_display2.h>
#include "dev_tv.h"
#include "de_tvec_i.h"
#include "../disp/disp_sys_intf.h"
#include "../disp/dev_disp.h"

enum hpd_status
{
	STATUE_CLOSE = 0,
	STATUE_OPEN  = 1,

};


s32 tv_init(void);
s32 tv_exit(void);
s32 tv_get_mode(u32 sel);
s32 tv_set_mode(u32 sel, disp_tv_mode tv_mod);
s32 tv_get_input_csc(void);
s32 tv_get_video_timing_info(u32 sel, disp_video_timings **video_info);
s32 tv_enable(u32 sel);
s32 tv_disable(u32 sel);
s32 tv_suspend(void);
s32 tv_resume(void);
s32 tv_mode_support(disp_tv_mode mode);
void tv_report_hpd_work(void);
s32 tv_detect_thread(void *parg);
s32 tv_detect_enable(void);
s32 tv_detect_disable(void);
s32 tv_get_dac_hpd(u32 sel);
s32 tv_hot_plugging_detect (u32 state);

#endif